#ifndef USERSERVICE_H
#define USERSERVICE_H

#include "../Dao/UserDao.h"

class DLLQLSDBMANAGER_EXPORT UserService
{
public:
	/**
	 * @brief The UserType enum
	 * ERRNO_SUCCESS：					成功
	 * ERRNO_INEXISTENCE：				用户不存在
	 * ERRNO_ALREADYEXIST：				用户名已存在
	 * ERRNO_MOBILE_ALREADYEXIST：		手机号已被绑定
	 * ERRNO_EMAIL_ALREADYEXIST：		邮箱已被绑定
	 */
	enum UserType
	{
		UNKNOW = 0,

		ERRNO_SUCCESS = 1000, ERRNO_INEXISTENCE, ERRNO_ALREADYEXIST, ERRNO_MOBILE_ALREADYEXIST, ERRNO_EMAIL_ALREADYEXIST,
	};

public:
	UserService();

	/* 通过id查找用户 */
	User *findUserById(const quint32 &id);

	/* 通过username查找用户 */
	User *findUserByUsername(const QString &username);

	/* 通过username和password查找用户 */
	User *findUserByUsernameAndPassword(const QString &username, const QString &password);

	/* 通过username,password,mobile查找用户 */
	User *findUserByUsernameAndPwdAndMobile(
			const QString &username, const QString &password, const QString &mobile);

	/* 通过username,mobile查找用户 */
	User *findUserByUsernameAndMobile(const QString &username, const QString &mobile);

	/* 将user存入数据库 */
	quint32 addUser(const User &user);

	/* 修改用户数据 */
	quint32 updateUser(const User &user);

	/* 查询表是否存在 */
	bool exists(const QString &databaseType);

	/* 创建表 */
	void CreateTable(const QString &databaseType);

private:
	UserDao ud;
};

#endif // USERSERVICE_H

